package com.mx.ipn.escom.wad.proyecto.usuario.bussines;

import java.util.List;
import javax.inject.Named;
import javax.inject.Singleton;
import org.springframework.transaction.annotation.Transactional;
import com.mx.ipn.escom.wad.proyecto.usuario.dao.UsuarioDao;
import com.mx.ipn.escom.wad.proyecto.usuario.model.Usuario;

/**
 * Clase que define las reglas de negocio que pertenecen a la gestión de Usuarios
 * @author jorge
 *
 */
@Singleton
@Named("usuarioBs")
public class UsuarioBs {
	
	private UsuarioDao usuarioDao;
	
	@Transactional
	public List<Usuario> findAll(){
		return usuarioDao.findAll();
	}
	
	@Transactional
	public Usuario findById(Integer id){
		return usuarioDao.findById(id);
	}
	
	@Transactional
	public List<Usuario> findByExample(Usuario entidad) {
		return usuarioDao.findByExample(entidad);
	}

	@Transactional(rollbackFor = Exception.class)
	private Usuario save(Usuario entidad) {
		return usuarioDao.save(entidad);
	}

	@Transactional(rollbackFor = Exception.class)
	private Usuario update(Usuario entidad) {
		return usuarioDao.update(entidad);
	}

	@Transactional(rollbackFor = Exception.class)
	private Usuario delete(Usuario entidad) {
		return usuarioDao.delete(entidad);
	}

	/**
	 * @return the usuarioDao
	 */
	public UsuarioDao getUsuarioDao() {
		return usuarioDao;
	}

	/**
	 * @param usuarioDao the usuarioDao to set
	 */
	public void setUsuarioDao(UsuarioDao usuarioDao) {
		this.usuarioDao = usuarioDao;
	}

}
